<?php

namespace Trawind\Rocketmq\Manage;

use AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicDeleteRequest;
use AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicListRequest;
use AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicStatusRequest;
use AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicSubDetailRequest;
use AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicUpdateRequest;
use AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicCreateRequest;


/**
 * @wiki https://next.api.aliyun.com/api/Ons/2019-02-14/OnsTopicCreate?params={}
 * Class TopicManage
 * @package Trawind\Rocketmq\Manage
 */
class TopicManage extends Manage
{


    /**
     * @param  array  $data
     * @return \AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicCreateResponse
     */
    public function create(array $data)
    {
        return $this->getOnsClient()->onsTopicCreate(new OnsTopicCreateRequest($data));
    }


    /**
     * @param  array  $data
     * @return \AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicListResponse
     */
    public function list(array $data)
    {
        return $this->getOnsClient()->onsTopicList(new OnsTopicListRequest($data));
    }


    /**
     * @param  array  $data
     * @return \AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicDeleteResponse
     */
    public function delete(array $data)
    {
        return $this->getOnsClient()->onsTopicDelete(new OnsTopicDeleteRequest($data));
    }


    /**
     * @param  array  $data
     * @return \AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicStatusResponse
     */
    public function status(array $data)
    {
        return $this->getOnsClient()->onsTopicStatus(new OnsTopicStatusRequest($data));
    }

    /**
     * @param  array  $data
     * @return \AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicUpdateResponse
     */
    public function update(array $data)
    {
        return $this->getOnsClient()->onsTopicUpdate(new OnsTopicUpdateRequest($data));
    }


    /**
     * @param  array  $data
     * @return \AlibabaCloud\SDK\Ons\V20190214\Models\OnsTopicSubDetailResponse
     */
    public function subDetail(array $data)
    {
        return $this->getOnsClient()->onsTopicSubDetail(new OnsTopicSubDetailRequest($data));
    }
}